ArangoDB-তে ডেটাবেসের কর্মক্ষমতা উন্নত করতে ইনডেক্সিং একটি গুরুত্বপূর্ণ ফিচার। এটি ডেটা অনুসন্ধানকে দ্রুততর করে এবং কোয়েরি অপারেশনের সময় ব্যয় হ্রাস করে। ArangoDB বিভিন্ন ধরণের ইনডেক্স সমর্থন করে, তার মধ্যে উল্লেখযোগ্য হলো Fulltext Index, Geo Index, এবং Persistent Index।
Fulltext Index
Fulltext Index ডেটা থেকে পূর্ণ-পাঠ্য অনুসন্ধানের জন্য ব্যবহৃত হয়। এটি বড় টেক্সট ডেটা থেকে নির্দিষ্ট শব্দ বা বাক্যাংশ দ্রুত খুঁজে পেতে সাহায্য করে।
কনফিগারেশন
১. একটি Collection-এ Fulltext Index তৈরি করুন:
db._create("articles");
db.articles.ensureIndex({ type: "fulltext", fields: ["content"], minLength: 3 });
minLength: ৩ মানে এটি ৩ বা তার চেয়ে বড় শব্দ অনুসন্ধান করবে।
কোয়েরি উদাহরণ
FOR doc IN FULLTEXT(articles, "content", "ArangoDB")
RETURN doc
ব্যবহার ক্ষেত্র
- ব্লগ বা আর্টিকেলের টেক্সট অনুসন্ধান।
- বড় ডকুমেন্ট থেকে কীওয়ার্ড খুঁজে বের করা।
Geo Index
Geo Index স্থানীয় তথ্য অনুসন্ধান এবং ভৌগোলিক ডেটা পরিচালনার জন্য ব্যবহৃত হয়। এটি দূরত্ব, নিকটতম অবস্থান, এবং বৃত্তাকার অঞ্চল অনুসন্ধান করতে ব্যবহৃত হয়।
কনফিগারেশন
১. একটি Collection-এ Geo Index তৈরি করুন:
db._create("locations");
db.locations.ensureIndex({ type: "geo", fields: ["latitude", "longitude"] });
Geo Index latitude এবং longitude ক্ষেত্র ব্যবহার করে কাজ করে।
কোয়েরি উদাহরণ
নিকটতম অবস্থান খুঁজতে:
FOR loc IN NEAR(locations, 23.8103, 90.4125, 5)
RETURN loc
এখানে NEAR ফাংশন নিকটস্থ ৫টি স্থান ফেরত দেবে।
ব্যবহার ক্ষেত্র
- রিয়েল-টাইম জিওলোকেশন ট্র্যাকিং।
- ম্যাপিং এবং নিকটস্থ স্থান অনুসন্ধান।
Persistent Index
Persistent Index জটিল ডেটা স্ট্রাকচারে নির্দিষ্ট ফিল্ডে অনুসন্ধান এবং সাজানোর জন্য ব্যবহৃত হয়। এটি বড় ডেটাসেটেও দ্রুত ফলাফল প্রদান করে।
কনফিগারেশন
১. একটি Collection-এ Persistent Index তৈরি করুন:
db._create("products");
db.products.ensureIndex({ type: "persistent", fields: ["price", "category"] });
Persistent Index অনেক ক্ষেত্রে SQL-র B-Tree Index এর মতো কাজ করে।
কোয়েরি উদাহরণ
দামের ভিত্তিতে পণ্য সাজানোর জন্য:
FOR product IN products
FILTER product.category == "electronics"
SORT product.price ASC
RETURN product
ব্যবহার ক্ষেত্র
- ফিল্টার এবং সাজানো অপারেশন।
- কমপ্লেক্স কোয়েরি এবং বিশাল ডেটাসেটে দ্রুত ফলাফল।
Fulltext, Geo, এবং Persistent Index এর তুলনা
| ইনডেক্স টাইপ | ব্যবহার ক্ষেত্র | মূল সুবিধা |
|---|---|---|
| Fulltext Index | টেক্সট ডেটা অনুসন্ধান। | টেক্সট থেকে নির্দিষ্ট শব্দ বা বাক্যাংশ দ্রুত খুঁজে পাওয়া। |
| Geo Index | ভৌগোলিক ডেটা অনুসন্ধান। | অবস্থান ভিত্তিক অনুসন্ধানে কার্যকর। |
| Persistent Index | ফিল্টার এবং সাজানোর জন্য। | জটিল কোয়েরি অপারেশনের জন্য দ্রুত ফলাফল। |
সারাংশ
Fulltext Index, Geo Index, এবং Persistent Index ArangoDB-তে ডেটা অনুসন্ধান ও ম্যানেজমেন্টের জন্য গুরুত্বপূর্ণ। এই ইনডেক্সগুলো ডেটা অনুসন্ধানের গতি বাড়ায় এবং বড় ডেটাসেটেও কর্মক্ষমতা নিশ্চিত করে। প্রতিটি ইনডেক্স নির্দিষ্ট ব্যবহারের জন্য উপযুক্ত, এবং এগুলো কার্যকরভাবে কনফিগার করলে ডেটাবেস অপ্টিমাইজেশন সহজ হয়।